Skip to content

1.0. System

In one glance

  • You will: Prepare the locked Python runtime and distinguish learner, contributor, and platform installations.
  • You need: Python familiarity, git, and a Linux, macOS, or WSL2 terminal.
  • Time: about 15 minutes, hands-on.

How do you install the learner environment?

Install mise, activate it in your shell, then run the small learner installation.

git clone https://github.com/MLOps-Courses/agentops-open-course.git
cd agentops-open-course
mise run install:learner
mise run check:labs

The installer adds pinned uv and the locked Python runtime at agents/python/.venv. It does not install Kubernetes, cloud CLIs, documentation tooling, git hooks, or the evaluation stack. It downloads packages but makes no model call.

You already know venv and pip; uv manages the same Python environment and locks dependency versions. 1.1. Python explains the repository-specific commands.

Which tools belong to each part?

Add tools when the lesson needs them.

Installation When to use it What it adds
mise run install:learner First laptop exercise uv and the locked agent runtime
mise run install Reference development and Chapter 4 Contributor tools, docs environment, test dependencies, and git hooks
cd agents/python && mise run install:eval MLflow evaluation exercises The optional evaluation group
mise run install:platform Part II Kubernetes tools and the separate MLflow server environment
mise run install:gcp Optional GKE extension Google Cloud CLI and its authentication plugin
mise run install:maintainer Maintaining this repository Every full-gate dependency

Do not use bare mise install for the first exercise: it selects all declared tools. The fully qualified local Kubernetes platform has stricter hardware and OS requirements than the laptop developer part; SUPPORT.md owns that contract.

How do contributors validate the complete reference?

Contributors use a larger installation because they maintain source, tests, infrastructure, and the course site.

From a fresh checkout, the contributor sequence is:

git clone https://github.com/MLOps-Courses/agentops-open-course.git
cd agentops-open-course
mise run install
mise run doctor
mise run check:core
mise run test

This is separate from the first learner exercise. These deterministic gates make no model calls. mise run check additionally validates infrastructure and refreshes dependency advisories; mise run scan checks secrets, vulnerabilities, and configuration.

What do the diagnostic profiles check?

Each doctor verifies the tools or services needed by a particular profile.

The base doctor checks git, uv, dprint, sqlite3, jq, lychee, shfmt, shellcheck, and actionlint, plus both contributor Python environments.

  • model adds curl and ollama for the optional local-model path.
  • gateway adds curl, docker, openssl, and yq.
  • platform adds rg, k3d, kubectl, helm, helmfile, skaffold, kubeconform, kube-linter, agentgateway, promtool, sops, and age-keygen.
  • gcp adds rg, kubectl, helm, helmfile, skaffold, kubeconform, tofu, tflint, gcloud, and gke-gcloud-auth-plugin.

The source owns the executable tool lists:

readonly -a base_tools=(git uv dprint sqlite3 jq lychee shfmt shellcheck actionlint)
readonly -a model_tools=(curl ollama)
readonly -a gateway_tools=(curl docker openssl yq)
readonly -a platform_tools=(
    rg k3d kubectl helm helmfile skaffold kubeconform kube-linter agentgateway promtool sops age-keygen
)
readonly -a gcp_platform_tools=(rg kubectl helm helmfile skaffold kubeconform tofu tflint)
readonly -a gcp_tools=(gcloud gke-gcloud-auth-plugin)

For Gemini laptop development, use mise run config:check. It checks configuration without sending a prompt. doctor:model specifically probes Ollama and is not a Gemini requirement.

What proves this page worked?

mise run check:labs

You are done when:

  • The worked checkpoints pass in the locked runtime; you will create your own step 1 in First Agent.
  • You know which install task to use when you later reach evaluation or platform lessons.
  • You have not installed a local model or started infrastructure merely to finish setup.

Continue to 1.1. Python for the small set of repository commands.